package com.atguigu.lease.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class BaseEntity implements Serializable {
    //实现Serializable接口是为了Redis缓存序列化

    @Schema(description = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "创建时间")
    @TableField(value = "create_time",fill = FieldFill.INSERT)//插入时自动填充字段
    @JsonIgnore //json序列化时忽略这个注解标记的字段
    private Date createTime;

    @Schema(description = "更新时间")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)//插入和更新时自动填充字段
    @JsonIgnore//json序列化时忽略这个注解标记的字段
    private Date updateTime;

    @Schema(description = "逻辑删除")
    @TableField("is_deleted")
    @TableLogic//查询时自动显示逻辑未删除的数据，删除时自动进行逻辑删除
    @JsonIgnore//json序列化时忽略这个注解标记的字段
    private Byte isDeleted;

}